package com.mazaiting.generator.service;

import com.mazaiting.common.core.ex.exceptions.BusinessException;
import com.mazaiting.common.core.ex.exceptions.EmptyObjectException;
import com.mazaiting.generator.domain.entity.BaseClassEntity;
import com.mazaiting.generator.domain.form.BaseClassForm;
import com.mazaiting.generator.domain.query.BaseClassQuery;
import com.mazaiting.generator.domain.vo.BaseClassVO;
import com.mazaiting.mybatisplus.domain.vo.BasePageVO;

/**
 * 基类管理
 *
 * @author 阿沐 babamu@126.com
 */
public interface IBaseClassService extends com.baomidou.mybatisplus.extension.service.IService<BaseClassEntity> {

    /**
     * 基类分页数据
     * @param baseClassQuery 基类查询条件
     * @return 分页数据
     */
    BasePageVO<BaseClassVO> page(BaseClassQuery baseClassQuery);

    /**
     * 更新基类实体
     * @param baseClassForm 实体信息
     * @return true: 更新成功; false: 更新失败
     */
    boolean update(BaseClassForm baseClassForm) throws EmptyObjectException;

    /**
     * 新增基类实体
     * @param baseClassForm 表单信息
     * @return true: 新增成功; false: 新增失败
     */
    boolean save(BaseClassForm baseClassForm) throws BusinessException;

}